.TH std::ranges::split_view::sentinel 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::split_view::sentinel \- std::ranges::split_view::sentinel

.SH Synopsis
   class /*sentinel*/;  \fI(since C++20)\fP
                        (exposition only*)

   The return type of split_view::end when the underlying view type (V) does not models
   common_range.

.SH Member functions

   constructor   constructs a sentinel
   (C++20)       \fI(public member function)\fP

std::ranges::split_view::sentinel::sentinel

   /*sentinel*/() = default;                                      \fB(1)\fP \fI(since C++20)\fP
   constexpr explicit /*sentinel*/( ranges::split_view& parent ); \fB(2)\fP \fI(since C++20)\fP

   1) Value-initializes end_ via its default member initializer (=
   ranges::sentinel_t<V>()).
   2) Initializes end_ with ranges::end(parent.base_).

.SH Non-member functions

   operator== compares the underlying iterator and the underlying sentinel
   (C++20)    \fI(function)\fP

operator==(std::ranges::split_view::iterator, std::ranges::split_view::sentinel)

   friend constexpr bool operator==( const /*iterator*/& x,    \fI(since C++20)\fP
                                     const /*sentinel*/& y );

   Equivalent to return x.cur_ == y.end_ and !x.trailing_empty_;.

   The != operator is synthesized from operator==.

   This function is not visible to ordinary unqualified or qualified lookup, and can
   only be found by argument-dependent lookup when std::ranges::split_view::sentinel is
   an associated class of the arguments.
